///*******************************************************************************
// * Copyright (c) 2009 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// *     IBM Corporation - initial API and implementation
// ******************************************************************************/
//
//package org.eclipse.ui.tests.internal;
//
//import java.lang.reflect.Field;
//import java.lang.reflect.Method;
//
//import org.eclipse.jface.action.Action;
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.layout.GridData;
//import org.eclipse.swt.layout.GridLayout;
//import org.eclipse.swt.widgets.Composite;
//import org.eclipse.swt.widgets.Text;
//import org.eclipse.ui.actions.TextActionHandler;
//import org.eclipse.ui.part.ViewPart;
//
///**
// * @since 3.5
// *
// */
//public class TextControlView extends ViewPart {
//	public static final String ID = "org.eclipse.ui.tests.textHandlerView";
//	public Action cutAction;
//	public Action copyAction;
//	public Action selectAllAction;
//	public Action pasteAction;
//	public Action cutDummyAction;
//	public Action copyDummyAction;
//	public Action selectDummyAllAction;
//	public Action pasteDummyAction;
//	public Text editableText;
//	public Text nonEditableText;
//	private TextActionHandler delegator;
//
//	public TextControlView() {
//		cutDummyAction = new Action("Cut") {
//		};
//		copyDummyAction = new Action("Copy") {
//		};
//		selectDummyAllAction = new Action("Select All") {
//		};
//		pasteDummyAction = new Action("Paste") {
//		};
//	}
//
//	/*
//	 * (non-Javadoc)
//	 *
//	 * @see
//	 * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets
//	 * .Composite)
//	 */
//	public void createPartControl(Composite parent) {
//		Composite c = new Composite(parent, SWT.NONE);
//		c.setLayout(new GridLayout(3, true));
//		editableText = new Text(c, SWT.MULTI);
//		editableText.setLayoutData(new GridData());
//		nonEditableText = new Text(c, SWT.MULTI | SWT.READ_ONLY);
//		nonEditableText.setLayoutData(new GridData());
//		delegator = new TextActionHandler(getViewSite().getActionBars());
//		delegator.addText(editableText);
//		delegator.addText(nonEditableText);
//		delegator.setCutAction(cutDummyAction);
//		delegator.setCopyAction(copyDummyAction);
//		delegator.setSelectAllAction(selectDummyAllAction);
//		delegator.setPasteAction(pasteDummyAction);
//	}
//
//	/*
//	 * (non-Javadoc)
//	 *
//	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
//	 */
//	public void setFocus() {
//		editableText.setFocus();
//	}
//
//	public Action getPasteAction() throws Exception {
//		return getAction("textPasteAction");
//	}
//
//	public Action getCopyAction() throws Exception {
//		return getAction("textCopyAction");
//	}
//
//	public Action getCutAction() throws Exception {
//		return getAction("textCutAction");
//	}
//
//	public Action getSelectAllAction() throws Exception {
//		return getAction("textSelectAllAction");
//	}
//
//	public void updateEnabledState() throws Exception {
//		Method method = TextActionHandler.class.getDeclaredMethod(
//				"updateActionsEnableState", null);
//		method.setAccessible(true);
//		method.invoke(delegator, null);
//	}
//
//	private Action getAction(String fieldName) throws Exception {
//		Field field = TextActionHandler.class.getDeclaredField(fieldName);
//		field.setAccessible(true);
//		return (Action) field.get(delegator);
//	}
//}
